export default function initTouch(props,setupCtx,common){
	function tap(e, move){
		if(!common.uChartsInstance || !props.ontap) return;
		// common.uChartsInstance.showToolTip(e)
		let currentIndex = null;
		let legendIndex = null;
		if (props.inScrollView) {
		  let chartdom = uni
		    .createSelectorQuery()
		    .in(common.vueCtx)
		    .select('#' + common.containerId)
		    .boundingClientRect(data => {
		      e.changedTouches=[];
		      e.changedTouches.unshift({ x: e.detail.x - data.left, y: e.detail.y - data.top - props.pageScrollTop});
		      if(move){
		        if (props.tooltipShow) {
		          common.showTooltip(e);
		        }
		      }else{
		        currentIndex = common.uChartsInstance.getCurrentDataIndex(e);
		        legendIndex = common.uChartsInstance.getLegendDataIndex(e);
		        if(props.tapLegend){
		          common.uChartsInstance.touchLegend(e);
		        }
		        if (props.tooltipShow) {
		          common.showTooltip(e);
		        }
		      }
		    })
		    .exec();
		} else {
		  if(move){
		    if (props.tooltipShow) {
		      common.showTooltip(e);
		    }
		  }else{
		    e.changedTouches = [];
		    e.changedTouches.unshift({ x: e.detail.x - e.currentTarget.offsetLeft, y: e.detail.y - e.currentTarget.offsetTop });
		    currentIndex = common.uChartsInstance.getCurrentDataIndex(e);
		    legendIndex = common.uChartsInstance.getLegendDataIndex(e);
		    if(props.tapLegend){
		      common.uChartsInstance.touchLegend(e);
		    }
		    if (props.tooltipShow) {
		      common.showTooltip(e);
		    }
		  }
		}
	}
	let lastMoveTime;
	function touchstart(e){
		if(!common.uChartsInstance) return;
		lastMoveTime = Date.now();
		if(common.uOptions.enableScroll){
		  common.uChartsInstance.scrollStart(e);
		}
	}
	function touchmove(e){
		if(!common.uChartsInstance) return;
		let currMoveTime = Date.now();
		let duration = currMoveTime - lastMoveTime;
		if (duration < Math.floor(1000 / 60)) return;//每秒60帧
		lastMoveTime = currMoveTime;
		if(common.uOptions.enableScroll){
		  common.uChartsInstance.scroll(e);
		}
		// if(this.ontap === true && cfu.option[cid].enableScroll === false && this.onmovetip === true){
		//   this._tap(e,true)
		// }
	}
	function touchend(e){
		if(!common.uChartsInstance) return;
		if(common.uOptions.enableScroll){
		  common.uChartsInstance.scrollEnd(e);
		}
		// if(this.ontap === true && cfu.option[cid].enableScroll === false && this.onmovetip === true){
		//   this._tap(e,true)
		// }
	}
	return {
		tap,
		touchstart,
		touchmove,
		touchend
	}
}